package utils

import java.util.List
import org.xtext.mydsl.scheduler.Actividad
import org.xtext.mydsl.scheduler.ActividadA
import org.xtext.mydsl.scheduler.SchedulerPackage
import org.xtext.mydsl.validation.MyAbstractValidator

class DuracionExtensionMethods extends MyAbstractValidator {
	
	public static val INVALID_NAME = 'invalidName'
	
	def sum(List<Integer> duraciones){
		duraciones.fold(0, [Integer total,  Integer duracion| duracion +  total])
	}
	
	def excedeDuracion(Actividad it, int duracion){
		informacion.duracion < duracion
	}
	
		
//Extensions methods particulares(Van aca para poder devolver un error)
	def duracionMinimaActividad(ActividadA it, int duracionMin){
		if(minutos < duracionMin)
			error('''debe durar como minimo «duracionMin» minutos.''',
					SchedulerPackage.Literals.ACTIVIDAD_A__TIME, INVALID_NAME)
	}
	
	def levantarErrorDeDuracion(String mensaje){
		error(mensaje,
					SchedulerPackage.Literals.ACTIVIDAD__INFORMACION, INVALID_NAME)
	}
}